/**
 * @作者 伟子涵
 * @微信公号 搬砖暗夜码农
 * @开源项目 $ https://gitee.com/zhouwei5208888
 * @我的博客 $ http://itzhouwei.com
 * @创建时间 2023/9/19 11:53
 */
package com.itzhouwei.commerce.utils;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;

/**
 * 需要在配置文件里面添加这些配置  如果不配置这些参数 是没有办法启动来 可以注释这个类
 * @description: 邮箱工具类
 * @author：zw，微信：yingshengzw
 * @date: 2023/9/19
 * @Copyright： 公众号：搬砖暗夜码农 | 博客：https://itzhouwei.com - 沉淀、分享、成长，让自己和他人都能有所收获！
 */
@Component
@Slf4j
public class EMailUtils {


    /***
     * 需要在配置文件里面添加这些配置  如果不配置这些参数 是没有办法启动来 可以注释这个类
     * spring
     *   mail:
     *     host: smtp.exmail.qq.com
     *     username: 1695209838@qq.com
     *     password: zGdyfzw-123456
     *     port: 465
     *     protocol: smtp
     *     default-encoding: utf-8
     *     properties:
     *       mail:
     *         smtp:
     *           auth: true
     *           starttls:
     *             enable: true
     *             required: true
     *           ssl:
     *             enable: true
     *           socketFactory:
     *             port: 465
     *             class: javax.net.ssl.SSLSocketFactory
     */


    private static String from;

    @Value("${spring.mail.username}")
    public void setFrom(String form){
        EMailUtils.from = form;
    }


    private static JavaMailSender mailSender;

    @Autowired
    public EMailUtils(JavaMailSender mailSender) {
        EMailUtils.mailSender = mailSender;
    }

    /**
     *
     * @param tos 发送给谁
     * @param subject 主题
     * @param content 内容
     * @return
     */
    public static boolean sendEmail(String[] tos,String subject,String content) {
        //创建简单邮件消息
        SimpleMailMessage message = new SimpleMailMessage();
        //谁发的
        message.setFrom(from==null?"1695209838@qq.com":from);
        //谁要接收
        message.setTo(tos);
        //邮件标题
        message.setSubject(subject);
        //邮件内容
        message.setText(content);
        try {
            mailSender.send(message);
        } catch (MailException e) {
            log.error(",接收人: "+tos[0]+",内容: "+content);
            e.printStackTrace();
            return false;
        }
        return true;
    }
}
